local days = {
  "Chủ nhật",
  "Thứ hai",
  "Thứ ba",
  "Thứ tư",
  "Thứ năm",
  "Thứ sáu",
  "Thứ bảy"
}

local dayTimeRanges = {
  {1, 4, "đêm"},
  {5, 9, "sáng"},
  {10, 12, "trưa"},
  {13, 18, "chiều"},
  {19, 21, "tối"},
  {22, 24, "đêm khuya"},
}

local d = tonumber(os.date("%d"))
local w = tonumber(os.date("%w"))
local m = tonumber(os.date("%m"))
local y = tonumber(os.date("%Y"))

local hour = tonumber(os.date("%H"))
local minute = tonumber(os.date("%M"))
local second = tonumber(os.date("%S"))

local timeStr = ""
for i, range in ipairs(dayTimeRanges) do
  if hour >= range[1] and hour <= range[2] then
    timeStr = range[3]
    break
  end
end

local week = math.ceil(d / 7)
local weekStr = " tuần thứ " .. week .. " của tháng " .. m 

local dateStr = "Hôm nay là " .. days[w+1] .. ", ngày " .. d .. weekStr .. ", năm " .. y .. "."
local timeStr = "Bây giờ là " .. hour .. " giờ " .. minute .. " phút " .. second .. " giây " .. timeStr .. "."

if service and service.speak then
  local result = dateStr .. " " .. timeStr
  service.speak(result)
end

days = {"", " ", "", " ", " ", " ", " ", " ", " ", " 0", " ", " "}
W = {" ", " ", " ", " ", " ", " ", " "}
service.appendSpeak(os.date(""))
d = os.date("%m")
d = days[tonumber(d)]
w = tonumber(os.date("%w"))
w = W[w+1]
service.appendSpeak(w.." "..os.date("%d").." "..d)
s ="mức pin hiện tại là:"..service.getBatteryLevel().."%"
service.appendSpeak(s)
return true